package aliyun.cx.admin.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import aliyun.cx.admin.entity.Category;
import java.util.List;

public interface CategoryService extends IService<Category> {
    
    /**
     * 分页查询分类列表
     */
    Page<Category> getCategoryPage(Integer current, Integer size, String name);
    
    /**
     * 获取所有分类列表
     */
    List<Category> getAllCategories();
    
    /**
     * 创建分类
     */
    boolean createCategory(Category category);
    
    /**
     * 更新分类
     */
    boolean updateCategory(Category category);
    
    /**
     * 删除分类
     */
    boolean deleteCategory(Long id);
    
    /**
     * 检查分类名称是否存在
     */
    boolean isNameExists(String name, Long excludeId);
    
    /**
     * 检查分类是否被文章使用
     */
    boolean isCategoryInUse(Long id);
    
    /**
     * 软删除分类
     */
    boolean softDeleteCategory(Long id);
    
    /**
     * 恢复已删除的分类
     */
    boolean restoreCategory(Long id);
    
    /**
     * 检查是否存在已删除的同名分类
     */
    Category findDeletedCategoryByName(String name);
}
